package com.xxxx.server.utils;

import java.util.Random;
import java.util.UUID;

/**
 * <p>
 *  uuid工具类
 * </p>
 *
 * @author mi-nuo-ji
 * @since 2021-11-22
 */
public class UUIDUitils {
    public static String getOrderIdByUUId() {
        int machineId = 1;//最大支持1-9个集群机器部署
        int hashCodeV = UUID.randomUUID().toString().hashCode();
        if(hashCodeV < 0) {//有可能是负数
            hashCodeV = - hashCodeV;
        }
        // 0 代表前面补充0
        // 4 代表长度为4
        // d 代表参数为正数型
        return machineId + String.format("%014d", hashCodeV);
    }

    public static String get16UUID(){
        // 1.开头两位，标识业务代码或机器代码(可变参数)
        int machineId = 10;
        // 2.中间四位随机整数
        String format = String.format("%04d", new Random().nextInt(9999));
        // 3.生成uuid的hashCode值
        int hashCode = UUID.randomUUID().toString().hashCode();
        // 4.可能为负数
        if(hashCode < 0){
            hashCode = -hashCode;
        }
        // 5.算法处理: 0-代表前面补充0; 10-代表长度为10; d-代表参数为正数型
        return machineId + format + String.format("%010d", hashCode);
    }
}
